package com.whfc.ms.api.quality.service;

import com.whfc.common.result.PageData;
import com.whfc.quality.dto.QualityFineDTO;
import com.whfc.quality.dto.QualityFineNumDTO;
import com.whfc.quality.param.QualityFineAddParam;
import com.whfc.quality.param.QualityFineCompleteParam;

import java.util.Date;
import java.util.List;

/**
 * @Description 质量罚款单
 * @Author hw
 * @Date 2021/8/13
 * @Version 1.0
 */
public interface MsQualityFineService {

    /**
     * 质量罚款单请求列表
     *
     * @param deptId
     * @param corpName
     * @param userName
     * @param state
     * @param startTime
     * @param endTime
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageData<QualityFineDTO> list(Integer deptId, String corpName, String userName, String state, Date startTime, Date endTime, Integer pageNum, Integer pageSize);

    /**
     * 质量罚款单请求统计
     *
     * @param deptId
     * @param corpName
     * @param userName
     * @param startTime
     * @param endTime
     * @return
     */
    QualityFineNumDTO num(Integer deptId, String corpName, String userName, Date startTime, Date endTime);

    /**
     * 新增质量罚款单请求
     *
     * @param param
     */
    void add(QualityFineAddParam param);

    /**
     * 删除质量罚款单请求
     *
     * @param fineId
     */
    void del(Integer fineId);

    /**
     * 批准罚款单
     *
     * @param param
     */
    void complete(QualityFineCompleteParam param);

    /**
     * 导出罚款单
     * @param fineIds
     * @param deptId
     */
    void export(String fineIds, Integer deptId);

    void deleteBatch(List<Integer> idList);
}
